home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2004 #6
/
Amiga Plus CD - 2004 - No. 06.iso
/
AmigaPlus
/
Begleitmaterial
/
50Tools
/
Grafik
/
PerfectPaint
/
rexx
/
Anim
/
Dissolve
/
Multi_Twirl
< prev
next >
Wrap
Text File
|
2001-10-01
|
2KB
|
114 lines
/* Dissolve Circle
100
*/
call addlib("rexxmathlib.library", 5, -30, 0)
options results
parse ARG Port Opt1 Opt2 Opt3 s0 t0 s1 t1 b
ADDRESS value Port
pp_GetWidth
w=result
pp_GetHeight
h=result
pp_GetDepth
D=result
pp_GetCurrentBuffer
CBf=result
pp_GetCurrentBrush
CB=result
pp_FindEmptyBrush
Brush=result
if Brush=-1 then DO
pp_Warn "can't*find*empty|Brush."
EXIT
END
pp_SetBrush Brush
pp_FindEmptyBuffer
Bf=result
if Bf=-1 then DO
pp_Warn "can't*find*empty|Buffer."
EXIT
END
pp_SetBuffer Bf
pp_New w+100 h+100 24
pp_SpareOnOff
/* Draw your Mask */
pp_setRange 0 0 0 0 0
pp_setRange 0 4 255 255 255
pp_setRange 0 8 0 0 0
pp_setRange 0 12 255 255 255
pp_setRange 0 16 0 0 0
pp_setRange 0 19 255 255 255
pp_Gradient 0 0 0 0
pp_EffectOn
pp_ComposeReqOff
pp_BoxF 0 0 w+99 h+99
pp_Twirl 400
pp_Boxf 50 50 w+50 h+50
pp_pickBrush 50 50 w h 1
pp_new w h 24
pp_SpareOnOff
pp_pent 6
pp_Plot w/2 h/2
pp_FreeBrush
pp_ComposeReqOn
pp_EffectOff
/* End */
pp_SparetoStencil
pp_SSave "ram:DisSten"
pp_ClearCurrentBuffer
pp_SetBuffer CBf
pp_SLoad "ram:DisSten"
ADDRESS COMMAND
'delete >nil: ram:DisSten'
ADDRESS value Port
pp_GotoFrame s1
pp_PicttoSpare
pp_GotoFrame s0
pp_Pickbrush 0 0 W H 1
step=(s1-s0)
Step_f=255/Step
DO i=s0 to s1
IF t1=1 then DO
pp_GotoFrame (s1+i-s0)
pp_PicttoSpare
END
pp_GotoFrame i
IF t0=0 then DO
pp_plot W/2 H/2
END
f=Step_f*(i-s0)
IF Opt1=0 then DO
pp_Dissolve f 255
END
ELSE DO
pp_Dissolve f f
END
pp_Refresh
END
pp_Gotoframe s0
pp_FreeBrush
pp_SetBrush CB
EXIT